+Thu Apr 25 23:49:01 2002 Kristian Rietveld <kris@gtk.org>
+
+ Fixes #74206.
+
+ * gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells
+
+ * gtk/gtktreeview.c (_gtk_tree_view_column_has_editable_cell),
+ (_gtk_tree_view_column_get_editable_cell): remove a space which made
+ the code look ugly
+ (_gtk_tree_view_column_count_special_cells): new function,
+ (gtk_tree_view_column_cell_process_action): if there's only one
+ activatable cell, the whole column will activate that renderer.
+
Thu Apr 25 23:36:55 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search
+Thu Apr 25 23:49:01 2002 Kristian Rietveld <kris@gtk.org>
+
+ Fixes #74206.
+
+ * gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells
+
+ * gtk/gtktreeview.c (_gtk_tree_view_column_has_editable_cell),
+ (_gtk_tree_view_column_get_editable_cell): remove a space which made
+ the code look ugly
+ (_gtk_tree_view_column_count_special_cells): new function,
+ (gtk_tree_view_column_cell_process_action): if there's only one
+ activatable cell, the whole column will activate that renderer.
+
Thu Apr 25 23:36:55 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search
+Thu Apr 25 23:49:01 2002 Kristian Rietveld <kris@gtk.org>
+
+ Fixes #74206.
+
+ * gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells
+
+ * gtk/gtktreeview.c (_gtk_tree_view_column_has_editable_cell),
+ (_gtk_tree_view_column_get_editable_cell): remove a space which made
+ the code look ugly
+ (_gtk_tree_view_column_count_special_cells): new function,
+ (gtk_tree_view_column_cell_process_action): if there's only one
+ activatable cell, the whole column will activate that renderer.
+
Thu Apr 25 23:36:55 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search
+Thu Apr 25 23:49:01 2002 Kristian Rietveld <kris@gtk.org>
+
+ Fixes #74206.
+
+ * gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells
+
+ * gtk/gtktreeview.c (_gtk_tree_view_column_has_editable_cell),
+ (_gtk_tree_view_column_get_editable_cell): remove a space which made
+ the code look ugly
+ (_gtk_tree_view_column_count_special_cells): new function,
+ (gtk_tree_view_column_cell_process_action): if there's only one
+ activatable cell, the whole column will activate that renderer.
+
Thu Apr 25 23:36:55 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search
+Thu Apr 25 23:49:01 2002 Kristian Rietveld <kris@gtk.org>
+
+ Fixes #74206.
+
+ * gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells
+
+ * gtk/gtktreeview.c (_gtk_tree_view_column_has_editable_cell),
+ (_gtk_tree_view_column_get_editable_cell): remove a space which made
+ the code look ugly
+ (_gtk_tree_view_column_count_special_cells): new function,
+ (gtk_tree_view_column_cell_process_action): if there's only one
+ activatable cell, the whole column will activate that renderer.
+
Thu Apr 25 23:36:55 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search
+Thu Apr 25 23:49:01 2002 Kristian Rietveld <kris@gtk.org>
+
+ Fixes #74206.
+
+ * gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells
+
+ * gtk/gtktreeview.c (_gtk_tree_view_column_has_editable_cell),
+ (_gtk_tree_view_column_get_editable_cell): remove a space which made
+ the code look ugly
+ (_gtk_tree_view_column_count_special_cells): new function,
+ (gtk_tree_view_column_cell_process_action): if there's only one
+ activatable cell, the whole column will activate that renderer.
+
Thu Apr 25 23:36:55 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search
gboolean _gtk_tree_view_column_has_editable_cell (GtkTreeViewColumn *column);
GtkCellRenderer *_gtk_tree_view_column_get_editable_cell (GtkTreeViewColumn *column);
+gint _gtk_tree_view_column_count_special_cells (GtkTreeViewColumn *column);
GtkTreeSelection* _gtk_tree_selection_new (void);
GtkTreeSelection* _gtk_tree_selection_new_with_tree_view (GtkTreeView *tree_view);
{
GList *list;
- for (list = column->cell_list; list; list = list ->next)
+ for (list = column->cell_list; list; list = list->next)
if (((GtkTreeViewColumnCellInfo *)list->data)->cell->mode ==
GTK_CELL_RENDERER_MODE_EDITABLE)
return TRUE;
{
GList *list;
- for (list = column->cell_list; list; list = list ->next)
+ for (list = column->cell_list; list; list = list->next)
if (((GtkTreeViewColumnCellInfo *)list->data)->cell->mode ==
GTK_CELL_RENDERER_MODE_EDITABLE)
return ((GtkTreeViewColumnCellInfo *)list->data)->cell;
return NULL;
}
+gint
+_gtk_tree_view_column_count_special_cells (GtkTreeViewColumn *column)
+{
+ gint i = 0;
+ GList *list;
+
+ for (list = column->cell_list; list; list = list->next)
+ {
+ GtkTreeViewColumnCellInfo *cellinfo = list->data;
+
+ if (cellinfo->cell->mode == GTK_CELL_RENDERER_MODE_EDITABLE ||
+ cellinfo->cell->mode == GTK_CELL_RENDERER_MODE_ACTIVATABLE)
+ i++;
+ }
+
+ return i;
+}
+
/* Public Functions */
if (event)
{
- if (real_cell_area.x <= ((GdkEventButton *)event)->x &&
+ if (_gtk_tree_view_column_count_special_cells (tree_column) == 1)
+ {
+ /* only 1 activatably cell -> whole column can activate */
+ if (cell_area->x <= ((GdkEventButton *)event)->x &&
+ cell_area->x + cell_area->width > ((GdkEventButton *)event)->x)
+ try_event = TRUE;
+ }
+ else if (real_cell_area.x <= ((GdkEventButton *)event)->x &&
real_cell_area.x + real_cell_area.width > ((GdkEventButton *)event)->x)
+ /* only activate cell if the user clicked on an individual
+ * cell
+ */
try_event = TRUE;
}
else /* if (info->has_focus)*/